package com.boco.ibssystem.business.service;

import com.boco.biinjectionserviceapi.vo.Params;
import com.boco.ibssystem.business.vo.*;

import java.util.List;

/**
 * @author  yichaofan
 * @date: 2019年05月15日 17:13
 * @email: hjljy@outlook.com
 * @version: v1.0
 * @description:  医疗运营sevice
 */
public interface IYlyyService {
    /**
     * 获取患者每月人均费用数据 包含住院和门诊平均费用
     * @param params
     * @return List<CountData>
     */
    List<HzfdVO> getHzrjfyData(Params params);

    /**
     * 获取到患者每月自费以及保险药费支出情况
     * @param params
     * @return List<CountData>
     */
    List<HzfdVO> getYyfzcData(Params params);


    /**
     * 获取报告期内，医疗保险费用构成类型数据
     * @param params
     * @return  List<PieData>
     */
    List<PieData> getYlbxgcData(Params params);

    /**
     * 获取保险费用和总费用数据
     * @param params
     * @return
     */
    List<HzfdVO> getBxfyzbData(Params params);

    /**
     * 获取患者负担数据：详细信息列表统计数据
     * @param params
     * @return
     */
    List<HzfdVO> getHzfdXxtjData(Params params);

    /**
     * 获取资产运营：每月资产收入数据
     * @param params
     * @return
     */
    List<ZcyyVO> getZcyyZcsrqsData(Params params);

    /**
     * 获取资产运营：资产构成饼图数据
     * @param params
     * @return
     */
    ZcyyVO getZcyyZcsrgcData(Params params);

    /**
     * 获取资产运营药品收入top5的数据
     * @param params
     * @return
     */
    List<PieData> getZcyyYptopData(Params params);
    /**
     * 获取资产运营材料收入top5的数据
     * @param params
     * @return
     */
    List<PieData> getZcyyCltopData(Params params);
    /**
     * 获取资产运营检查收入top5的数据
     * @param params
     * @return
     */
    List<PieData> getZcyyJctopData(Params params);

    /**
     * 描述：获取资产收入明细表格数据
     * @param params
     * @return
     */
    List<ZcyyVO> getZcyyZcsmxsData(Params params);

    /**
     * 描述：获取工作负荷：诊疗人次数据
     * @param params
     * @return
     */
    List<PieData> getGzfhZlrcData(Params params);

    /**
     * 获取工作负荷：诊疗就诊类型每月数据
     * @param params
     * @return
     */
    List<GzfhVO> getGzfhJzlxData(Params params);

    /**
     * 工作负荷：住院患者手术次数
     * @param params
     * @return
     */
    List<GzfhVO> getGzfhZyhzsscsData(Params params);

    /**
     * 工作负荷：出入院人数统计
     * @param params
     * @return
     */
    List<GzfhVO> getGzfhCrytjData(Params params);

    /**
     * 工作负荷：详细信息统计
     * @param params
     * @return
     */
    List<GzfhVO> getGzfhXxtjData(Params params);

    /**
     * 获取出院患者平均住院日
     * @param params
     * @return
     */
    List<PieData> getGxxlPjzyr(Params params);
}
